/**
 * Main.js 主要作用：定义需要多次重复使用的js函数，并且定义基础框架中的启动事件
 */
/**
 * 检测字符串的长度(一个字母或数字一个字符，一个汉字算两个字符)
 * @param str string 被检测的字符串
 * @returns {number} int 字符串的长度
 */
function getStrLength(str){
    var leng = str.length;
    var len = 0;
    for(var i = 0; i < leng; i ++){
        if(str[i].match(/[^\x00-\xff]/ig) != null){
            len += 2;
        }else{
            len += 1;
        }
    }
    return len;
}
/**
 * 检查字符串是否符合指定类型的验证规则
 * @param str
 * @param min
 * @param max
 * @returns {boolean}
 */
function checkStrLength(str, min, max){
    var length = getStrLength(str);
    return length >= min && length <= max;
}
/**
 * 自动消失的弹出提示框
 * @param txt
 * @param time
 */
function clearpop(txt, time){
    time = time ? time : 1500;
    var obj = $("#clearpop");
    $('#clearpopTxt').html(txt);
    obj.show();
    setTimeout(function(){
        obj.hide();
    }, time);
}
/**
 * DOC主页获取目录的html字符串
 * @param cate array 数据库中保存的目录数据
 * @param id int 文档ID
 * @returns {string}
 */
function getDocCate(cate, id){
    var str = '<ul>';
    for(var i in cate){
        str += '<li><a href="/'+id+'/c/'+cate[i]['id']+'" cid="'+cate[i]['id']+'">'+cate[i]['name']+'</a>';
        if(cate[i]['child']){
            str += getDocCate(cate[i]['child'], id);
        }
        str += '</li>';
    }
    str += '</ul>';
    return str;
}
/**
 * 给文档主页的目录设置数字镖标号
 * @param condition
 */
function setDocCount(condition){
    if($(condition).length){
        var btext = '';
        $(condition).each(function(){
            btext = $(this).parent().prev().children('b').length ? $(this).parent().prev().children('b').text() : '';
            $(this).children('a').prepend('<b>'+btext+($(this).index()+1)+'.</b> ');
        });
        condition += '>ul>li';
        setDocCount(condition);
    }
}
/**
 * 文档阅读页面中的上一页和下一页功能实现
 * @param zone array $('#cateContainer').find('a')的集合
 * @param cid int 当前页面的cid值
 */
function setPrevNext(zone, cid){
    var len = zone.length;
    for(var i = 0; i < len; i++){
        if(zone.eq(i).attr('cid') == cid){
            if(cid != 0){
                var ePrev = zone.eq(i-1);
                $('.prev').attr({'href' : ePrev.attr('href'), 'title' : '上一篇：'+ePrev.text()});
            }
            var eNext = zone.eq(i+1);
            $('.next').attr({'href' : eNext.attr('href'), 'title' : '下一篇：'+eNext.text()});
        }
    }
}
$(document).ready(function(){
    /**
     * 某些页面左侧 开启与关闭动画
     */
    // var eTitle = $('#leftTitle'), eLeftSec = $('#leftSec'), eBtn = $('#toggleBtn');
    // var oldTitle = eTitle.text();
    // eBtn.on('click', function(){
    //     toggleNav();
    // });
    // $('#leftShowBtn').on('click', function(){
    //     toggleNav();
    // });
    // if(eLeftSec.css('display') == 'none'){
    //     eTitle.text(eLeftSec.find('.red').text()).addClass('red');
    //     eBtn.addClass('red');
    // }
    // function toggleNav(){
    //     var type = eLeftSec.css('display');
    //     if(type == 'block'){
    //         eLeftSec.css('display', 'none');
    //         eTitle.text(eLeftSec.find('.red').text()).addClass('red');
    //         eBtn.addClass('red');
    //     }else if(type == 'none'){
    //         eLeftSec.css('display', 'block');
    //         eTitle.text(oldTitle).removeClass('red');
    //         eBtn.removeClass('red');
    //     }
    // }


});

/**
 * 全屏 与 关闭全屏
 */
function fullScreen() {
    var el = document.documentElement,
        rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen;
    if(typeof rfs != "undefined" && rfs) {
        rfs.call(el);
        return;
    }else{
        var   wsh   =   new   ActiveXObject("WScript.Shell");
        wsh.SendKeys("{F11}");
    }
}
function exitFullScreen() {
    var el = document,
        cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen;
    if (typeof cfs != "undefined" && cfs) {
        cfs.call(el);
        return;
    }else{
        var   wsh   =   new   ActiveXObject("WScript.Shell");
        wsh.SendKeys("{F11}");
    }
}

